const mongoose = require('mongoose')

var Schema = mongoose.Schema
// 通过mongoose获得schema对象
var userSchema = new Schema({
  username: {
    type: String, 
    unique: true
  }, 
  password: {
    type: String,
    set(val){
      return require('bcrypt').hashSync(val, 10);
    }
  }
})
var User = mongoose.model('user', userSchema) // 该数据对象和集合关联('集合名', schema对象)

// This function will insert data into the database. (create a new user)
// User.mycreate = async function (us, ps, callback) {
//   User.find({ username: us }, (err, userinit) => {
//     if (!err) {
//       console.log(userinit);
//       if (userinit) {
//         callback('邮箱已存在');
//       } else {
//         User.save([
//           {
//             username: us,
//             password: ps,
//           }
//         ], err => {
//           if (!err) {
//             callback(us);
//             console.log("数据插入成功");
//           }else{
//             callback('出错');
//           }
//         })
//       }
//     }else{
//       callback('出错');
//     }

//   });
// }

// User.mylogin = async function (us, ps, callback) {
//   // find the user data by his username.https://www.jianshu.com/p/554a5bf67b31
//   console.log(`在数据库中查找us:${us},ps:${ps}`);
//   console.log(typeof (us));
//   User.find({ username: us }, (err, userinit) => {
//     if (!err && userinit) {
//       if (ps === userinit[0].password) {
//         console.log('用户名密码验证成功！');
//         callback(us);
//       } else {
//         console.log('用户名存在，密码错误！');
//         callback(null);
//       }
//     } else {
//       console.log('查找数据库错误!');
//       callback(null);
//     }
//   })
// }

// User.db.dropCollection('users')

module.exports = {User}